package cn.jy.map.service;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import cn.jy.map.domain.FiveLink;
import cn.jy.map.domain.GjzLc;
import cn.jy.map.domain.LcBaseLcblfy;
import cn.jy.map.domain.Nurse;
import cn.jy.map.domain.NurseGjzColligate;
import cn.jy.map.domain.ProviderNurse;
import cn.jy.map.domain.RelHistory;
import cn.jy.map.domain.VillageColligate;
import cn.jy.map.domain.Wxjyy;
import cn.jy.map.domain.importantProvider;
import cn.jy.map.domain.UnSuccessInformation.BodyCheckJY;
import cn.jy.map.domain.UnSuccessInformation.BodyCheckMX;
import cn.jy.map.domain.UnSuccessInformation.TogetherProvider;
import cn.jy.map.domain.UnSuccessInformation.UpdateLC;

/**
 * 临床不良反应service
 * @author Administrator
 *
 */
public interface LcBlfyService {

	/**
	 * 获取临床不良反应
	 * @param providerNo
	 * @param date
	 * @return
	 */
	public LcBaseLcblfy getLcBlfy(String providerNo,String date);

	/**
	 * 更新浆员的管理信息，包括管理护士、管理义工、分组、重点浆员等
	 */
	public void updateProviderManageMsg(List<ProviderNurse> providerNurse) throws Exception;

	public List<String> getSameTimeComed(String providerNo,String date,String address,String nurseId);
	public List<Nurse> getNurse();
	public List<Wxjyy> getGtjl(String providerNo);

	public Map<String,Object> getNurseGjzLc(String nurseId,int gjzType,String address);

	/**
	 * 获取某个浆员的护士修改历史
	 * @param providerNo
	 * @return
	 */
	public List<RelHistory> getNurseChangeHis(String providerNo);

	/**
	 * 获取某个护士所有连接浆员所属的村落
	 * @param nurseId
	 * @return
	 */
	public List<String> getNurseVill(String nurseId);
	/**
	 * 获取五步链接
	 * @return
	 */
	public List<FiveLink> getFiveLink(String cardId,String date);
	/**
	 * 根据五步链接查询出来的结果去匹配链接环节对应的name
	 * @param code
	 * @return
	 */
	public String getLinkHj(String code);
	/**
	 * 根据五步链接查询出来的结果去匹配链接效果对应的name
	 * @param code
	 * @return
	 */
	public String getLinkXG(String code);
	/**
	 * 根据五步链接查询出来的结果去匹配链接承诺对应的name
	 * @param code
	 * @return
	 */
	public String getLinkCN(String code);


	/**
	 * 根据卡号修改供浆者轮次表对应的链接
	 * @param gjzLc
	 */
	void updateGjzLcLink(GjzLc gjzLc);
	/**
	 * 查询配置选项卡      以护士姓名、浆员类型、村落未基础查
	 * @param lcCondition
	 * @return
	 */
	public List<GjzLc> getGjzLc(GjzLc lcCondition);
	/**
	 * 根据护士卡号、浆员类型查询村落
	 * @param cardId
	 * @return
	 */
	public List<String> getByVills(String cardId);

	void updateLinkState(GjzLc gjzLc);
	void updateNoLinkState(GjzLc gjzLc);
	/**
	 * 根据建档了未献浆的，和建档未成功的浆员的卡号查询他们的一个状态(精英)
	 */
	public List<BodyCheckJY> getJyState(String providerNo);
	/**
	 * 根据建档了未献浆的，和建档未成功的浆员的卡号查询他们的一个状态(佳颖`)
	 */
	public List<BodyCheckMX> getMXJYState(String CARDID);
	/**
	 *查询建档日期  更新到数据库轮次表中
	 */
	public List<UpdateLC> getLCByGJZXX(String providerNo,String stratTime,String endTime,UpdateLC lc);
	/**
	 * 根据护士id查询 五步链接的浆员
	 */
	public List<String> getByNurseIdFiveLink(@Param("nurseId")String nurseId);
	/**
	 * 根据前台传过来的卡号 查询 R类浆员   体检 化简
	 *  胸片没有不合格选项  但是进行到其中某个步骤
	 *  的时候   离开了浆站 导致建档未成功 根据符合
	 *  这个条件的人的建档时间去查上10分钟和下10分钟的建档浆员
	 */
	public List<TogetherProvider> getByQualified(String CARDID);
	/**
	 * 更新重点浆员类型表
	 */
	void insertZDJYLX();
	/**
	 * 查询重点浆员码表
	 * @return
	 */
	public List<importantProvider> getJYLXMB();
	/**
	 * 根据id号查询介绍人姓名
	 */
	public String getByIdJSR(@Param("ID")String ID);
	/**
	 * 添加介绍人到轮次表中
	 */
	void updateByJSR();
	
	/**
	 * 查询村落综合统计信息
	 */
	public List<VillageColligate> getVillStatistics();
}
